package com.dk.testflow;

import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.dk.assertion.AssertChainConfig;
import com.dk.domain.ApiAutoTestEntity;
import com.dk.domain.assertion.CheckPointEntity;
import com.dk.util.log.Log;

/**
 * 断言环节
 */
public class AssertLink extends ApiAutoTestChain{
    @Override
    public void executeTestChain(ApiAutoTestEntity apiAutoTestEntity) {
        Log.info("---【用例断言】:用例编号:"+apiAutoTestEntity.getCaseNum()+";用例名称:"+apiAutoTestEntity.getCaseName()+"开始执行断言");
        if(JSON.parseObject(apiAutoTestEntity.getCheckPoint(), CheckPointEntity.class).isNoEmpty()&& JSONUtil.isJson(apiAutoTestEntity.getCheckPoint())){
            //执行断言链
            apiAutoTestEntity = AssertChainConfig.getAssertChain().startAssert(apiAutoTestEntity);
        }else{
            Log.error("---【error】:用例编号:"+apiAutoTestEntity.getCaseNum()+";用例名称:"+apiAutoTestEntity.getCaseName()+"检查数据为空或者格式不为json");
        }
        Log.info("---【用例断言】:用例编号:"+apiAutoTestEntity.getCaseNum()+";用例名称:"+apiAutoTestEntity.getCaseName()+"断言结束");
    }
}
